package com.chenbei.common.config;

import cn.dev33.satoken.interceptor.SaInterceptor;
import cn.dev33.satoken.router.SaHttpMethod;
import cn.dev33.satoken.router.SaRouter;
import cn.dev33.satoken.stp.StpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@Slf4j
public class SaTokenConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new SaInterceptor(handle -> {
            //后台管理平台
            SaRouter.match("/admin/**")                                     // 拦截所有以/admin开头的URL
                    .notMatch(SaHttpMethod.OPTIONS)                                  // 排除是OPTIONS请求类型的URL
                    .notMatch("/admin/login", "/admin/getCaptcha")          // 排除不需要登录校验的URL
                    .notMatch("*.html", "*.css", "*.js")                    // 排除不需要登录校验的后缀请求
                    .check(r -> StpUtil.checkLogin());                               // 进行登录校验操作

            //星星成长积分宝
            SaRouter.match("/xxczjfb/**")
                    .notMatch(SaHttpMethod.OPTIONS)
                    .notMatch("/admin/login")
                    .check(r -> StpUtil.checkLogin());
        })).addPathPatterns("/**");
    }
}
